/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Asignaciones;

import Controladores.AulaJpaController;
import Controladores.CatedraticoJpaController;
import Controladores.EdificioJpaController;
import Entidades.Aula;
import Entidades.Catedratico;
import Entidades.Edificio;
import Entidades.Estado;
import Usuarios.conexion;
import java.util.ArrayList;
import java.util.List;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.ComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;

/**
 *Clase para pode interactuar con la interfaz
 * Branc Equipo_B
 * @author Isaac Cifuentes <isaaccivan@gmail.com>
 */
public class interactuarconinterfaz {

    public interactuarconinterfaz() {
    }
/***
 * Metodo para ingresar los catedraticos que no estan anulados en un
 * combobox
 * @param el combobox que se desea llenar
 */
public  ObservableList ComboboxCatedraticos(){
    CatedraticoJpaController cat=new CatedraticoJpaController(conexion.getInstancia().getEMF());
     List<Catedratico> d=cat.findCatedraticoEntities();
    ObservableList<Catedratico> filtrada = FXCollections.observableArrayList();
     int a=0;
   // combobox.removeAllItems();
    while(a<d.size()){
        if(d.get(a).getAnulado().booleanValue()==false){
        filtrada.add(d.get(a));
        }
    //System.out.println(d.get(a).getNombre()+"\n");
    a++;
    }
    return filtrada;
}
/****
 * Metodo para ingresar en un jcombobox las aulas que no estan 
 * anuladas y que pertenecen a determinado edifico
 * @param el edificio del cual queremos las aulas
 * 
 */
public ObservableList ComboboxAulas(Edificio edificio){
    AulaJpaController aula=new AulaJpaController(conexion.getInstancia().getEMF());
     List<Aula> d=aula.findAulaEntities();
     ObservableList<Aula> filtrada = FXCollections.observableArrayList();
    int a=0;
        while(a<d.size()){
        if((d.get(a).getAnulado().booleanValue()==false) && (d.get(a).getEdificioidEdificio().getIdEdificio()==edificio.getIdEdificio())){
            filtrada.add(d.get(a));
    
        }
   // System.out.println(d.get(a).getNombre()+"\n");
    a++;
    }
    return filtrada;
}
/****
 * Metodo para ingresar en un jcombobox los edificios que no estan anulados
 * @param combobox 
 */
public ObservableList ComboboxEdificio(){
    EdificioJpaController edificio=new EdificioJpaController(conexion.getInstancia().getEMF());
     List<Edificio> d=edificio.findEdificioEntities();
    ObservableList<Edificio> filtrada =  FXCollections.observableArrayList();
     int a=0;
    
    while(a<d.size()){
        if(d.get(a).getAnulado().booleanValue()==false){
     filtrada.add(d.get(a));
        }
   // System.out.println(d.get(a).getNombre()+"\n");
    a++;
    }
    return filtrada;
}
/***
 * Metodo para buscar los controles de las aulas
 * @param el aula de la cual se desea extraer los datos
 * @return List con los datos
 */
public ObservableList BuscarControlesAulas(Aula aula){
ClasetemporarlAulas interactuarAulas=new ClasetemporarlAulas();
interactuarAulas.Buscar(aula);
return interactuarAulas.getLista();
}
 /**
 * Metodo para buscar los controles de las aulas en base a un estado
 * @param el aula de la cual se desea extraer los datos
 * @param el estado por el cual se desea filtrar
 * @return List con los datos
 */
public  ObservableList BuscarControlesAulaporEstado(Aula aula, Estado estado){
ClasetemporarlAulas interactuarAulas=new ClasetemporarlAulas();
interactuarAulas.BuscarporEstado(aula,estado);
return interactuarAulas.getLista();

}
}
